package com.example.sentineldemo.component;

/**
 * Created with IntelliJ IDEA 2023.
 * Description:
 * User: 故我
 * Date: 2024-02-16
 * Time: 11:35
 */

import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.RequestOriginParser;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;

/**
 * 配置黑白名单
 * 如果请求中包含字段，并设置为白名单，只有包含这个字段才能进行访问
 * 如果请求中包含字段，并设置为黑名单，说明包含这个字段的请求不能进行访问
 */
@Component
public class CustomerRequestOriginParser implements RequestOriginParser {
    @Override
    public String parseOrigin(HttpServletRequest request) {
        // 1、获取请求报头
        String origin = request.getHeader("origin");
        // 2、进行判断
        if (!StringUtils.hasLength(origin)) {
            origin = "blank";
        }
        return origin;
    }
}
